Compiled _tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo(4) descriptions are placed under the directory
_////_uuuu_ssss_rrrr_////_ssss_hhhh_aaaa_rrrr_eeee_////_llll_iiii_bbbb_////_tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo. In order to avoid a linear search of a huge
UNIX system directory, a two-level scheme is used:
_////_uuuu_ssss_rrrr_////_ssss_hhhh_aaaa_rrrr_eeee_////_llll_iiii_bbbb_////_tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo_////_c_////_n_a_m_e where _n_a_m_e is the name of the terminal,
and _c is the first character of _n_a_m_e. Thus, _aaaa_tttt_tttt_4444_4444_2222_5555 can be found in the
file _////_uuuu_ssss_rrrr_////_ssss_hhhh_aaaa_rrrr_eeee_////_llll_iiii_bbbb_////_tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo_////_aaaa_////_aaaa_tttt_tttt_4444_4444_2222_5555. Synonyms for the same terminal
are implemented by multiple links to the same compiled file.
The format has been chosen so that it is the same on all hardware. An
8-bit byte is assumed, but no assumptions about byte ordering or sign
extension are made. Thus, these binary _tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo files can be transported
to other hardware with 8-bit bytes.
Short integers are stored in two 8-bit bytes. The first byte contains
the least significant 8 bits of the value, and the second byte contains
the most significant 8 bits. (Thus, the value represented is
256*_s_e_c_o_n_d+_f_i_r_s_t.) The value _----_1111 is represented by _0000_3333_7777_7777_,,,,_0000_3333_7777_7777, and the
value _----_2222 is represented by _0000_3333_7777_6666_,,,,_0000_3333_7777_7777; other negative values are illegal.
The _----_1111 generally means that a capability is missing from this terminal.
The _----_2222 means that the capability has been cancelled in the _tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo
source and also is to be considered missing.
The compiled file is created from the source file descriptions of the
terminals (see the _----_IIII option of _iiii_nnnn_ffff_oooo_cccc_mmmm_pppp) by using the _tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo compiler,
_tttt_iiii_cccc, and read by the routine _ssss_eeee_tttt_uuuu_pppp_tttt_eeee_rrrr_mmmm [see _cccc_uuuu_rrrr_ssss_eeee_ssss(3X).] The file is
divided into six parts in the following order: the header, terminal
names, boolean flags, numbers, strings, and string table.
The header section begins the file. This section contains six short
integers in the format described below. These integers are (1) the magic
number (octal _0000_4444_3333_2222); (2) the size, in bytes, of the names section; (3)
the number of bytes in the boolean section; (4) the number of short
integers in the numbers section; (5) the number of offsets (short
integers) in the strings section; (6) the size, in bytes, of the string
table.
The terminal names section comes next. It contains the first line of the
_tttt_eeee_rrrr_mmmm_iiii_nnnn_ffff_oooo description, listing the various names for the terminal,
separated by the bar ( | ) character (see _tttt_eeee_rrrr_mmmm(5)). The section is
terminated with an ASCII NUL character.
The boolean flags have one byte for each flag. This byte is either _0000 or
_1111 as the flag is present or absent. The value of _2222 means that the flag
has been cancelled. The capabilities are in the same order as the file